package cn.huiyunche.base.service.interfaces;

import cn.huiyunche.base.service.enums.COrderStatusEnum;
import cn.huiyunche.base.service.enums.PaymentStatusEnum;
import cn.huiyunche.base.service.enums.StatusCategoryEnum;
import cn.huiyunche.base.service.model.SOrderStatusLog;
import cn.huiyunche.base.service.vo.UserVo;

public interface OrderStatusLogService {

    /**
     * @param orderId  订单id
     * @param enum1    状态类别
     * @param enum2    流程状态
     * @param isSystem 是否是系统操作
     * @return
     * @Title: insertSelective
     * @Description: 保存订单流程状态变更
     * @return: int
     */
    int insertSelective(long orderId, StatusCategoryEnum enum1, COrderStatusEnum enum2, boolean isSystem, UserVo user) throws Exception;

    /**
     * @param orderId 订单id
     * @param enum1   状态类别
     * @param enum2   支付状态
     * @return
     * @Title: insertSelective
     * @Description: 保存订单支付状态变更
     * @return: int
     */
    int insertSelective(long orderId, StatusCategoryEnum enum1, PaymentStatusEnum enum2);

    int insertSelective(long orderId, long userId, String userName, StatusCategoryEnum enum1, PaymentStatusEnum enum2);

    int insertSelective(SOrderStatusLog log);

    /**
     * @param customerOrderId 客户订单id
     * @Title: deleteByCOrderId
     * @Description: 根据客户订单id删除状态变更
     * @return: void
     */
    void deleteByCOrderId(long customerOrderId);

}
